package semac.control;

import java.util.ArrayList;
import java.util.Map;
import semac.entidades.Alumno;
import semac.entidades.AnioLectivoCurso;
import semac.entidades.Cobro;
import semac.entidades.Curso;
import semac.entidades.Matricula;

/**
 *
 * @author Ivan Ricardo Flores
 */
public class CtrlMatriculas {

    ArrayList<Matricula> matriculas = new ArrayList();
    CtrlAlumnos manejadorAlumnos;
    //CtrlCobros manejadorCobros;
    //CtrlAnioLectivoCurso manejadorAnioLectivoCurso;
    //CtrlCuentas manejadorCuentas;

    public CtrlMatriculas(){

    }

    //Crea una matrícula verificando los datos de la misma
    public boolean crearMatricula(Matricula m){
    return false;
    }

    //inserta la matricula en la base de datos
    public void insertMatricula(Matricula m){

    }

    //Verifica los estados del alumno y retorna True si el alumno se puede matricular
    public boolean verificarEstadosAlumno(Alumno a){
        return true;
    }

    public int updateMatricula(Matricula m){
        return 0;
    }

    //cambia el estado de activadad de todas las matriculas
    public void desactivarTodasMatriculas(){

    }

    public ArrayList<AnioLectivoCurso> getCodigoAlumnosPorCurso(AnioLectivoCurso anioLectivoCurso){
        return new ArrayList<AnioLectivoCurso>();
    }

    //Retorna el alumno con la cuenta ingresada
    public Alumno getAlumno(String cuenta){
        return new Alumno();
    }

    //Obtiene un listado de los cursos disponibles en el año lectivo vigente y verifica si tienen cupo
    public ArrayList<Curso> getCursosDisponibles(){
        return new ArrayList<Curso>();
    }

    //Genera los cobros para una matrícula y retorna la cantidad de cobros creados
    private int generarCobros(){
        return 0;
    }

    //Retorna el código de un estado
    public int getCodigoEstadoMatricula(String estado){
        return 0;
    }

    public ArrayList<Matricula> getMatriculasActivas(){
        return new ArrayList<Matricula>();
    }

    //Retorna la matricula activa de un alumno
    public Matricula getMatriculaActivaAlumno(Alumno alumno){
        return new Matricula();
    }

    //Retorna los cobros relacionados a una matricula
    public ArrayList<Cobro> getCobrosMatricula(Matricula m){
        return new ArrayList<Cobro>();
    }

    //Metodos para TipoPago-------------------------
    public ArrayList<Map> getTipoPagos(){
        return new ArrayList<Map>();
    }

    public int insertTipoPago(Map mapa){
        return 0;
    }

    public int removeTipoPago(int codigoTipoPago){
        return 0;
    }


}
